Methods for Updating an Electronic Device

ABSTRACT

A method for updating an imaging device is described. The method comprises: receiving update information from a memory of a supply item, the update information comprising an update value, and updating a firmware variable of the imaging device based on the update information. An imaging device is also described that comprises firmware and memory, the memory storing a firmware variable, wherein the firmware is configured to read the firmware variable, and the imaging device is configured to update the firmware variable, by: receiving update information from a memory of a supply item, the update information comprising an update value, and updating the firmware variable of the imaging device based on the update information. An imaging device supply item is also described. The supply item comprises a memory, the memory storing update information, the update information comprising an update value, and the supply item being configured to send the update information.

CROSS REFERENCE TO RELATED APPLICATIONS

This application claims priority to U.S. Provisional Patent ApplicationSer. No. 63/256,615, filed Oct. 17, 2021, entitled “Methods for SuppliesGeneration and Countermeasure Management in a Printer”, the content ofwhich is hereby incorporated by reference in its entirety.

BACKGROUND 1 Technical Field

The present disclosure generally relates to methods and systems forupdating an electronic device using a supply item, and, moreparticularly, methods and systems for updating an imaging device using asupply item.

2. Description of the Related Art

In electronic systems, it is often desirable to confirm the authenticityof a component of the electronic system to ensure that the entire systemoperates as designed. Non-authentic components employ various techniquesto mimic the behavior of authentic components. This may include copyingthe authentic component's circuits and memory contents in order toduplicate authentication algorithms or encrypted communication betweenthe component and the rest of the electronic system. This isparticularly important in printing systems where it is desirable toconfirm the authenticity of a supply component of the printing system toensure correct operation.

It is often desirable to change the behavior of an electronic systemduring its lifecycle, by installing a software or firmware update. Inthis way, functionality and/or authentication criteria for componentsmay be changed or added. For example, changes in imaging devicefunctionality may include deployment of latent firmware functions (e.g.,countermeasures, or additional security authentication with supplysecurity devices), or updates to compatibility settings that governwhich supplies may be installed in the imaging device. In thesesituations, it is generally assumed that firmware updates by the enduser will not be performed to an acceptable extent.

Methods for accomplishing these changes outside of user-implementedfirmware updates have typically been limited to timer-based mechanisms,wherein the electronic device contains a tamper-resistant clock thatrecords the total elapsed uptime since a reference date/time. Theelectronic system's firmware monitors this clock value and deploysfunctions at certain times, typically based on a table of stored triggervalues. However, a key disadvantage of this method is that the timer canbe vulnerable to tampering (either rolling the timer forward so that thelatent functions are prematurely discovered by an adversary, or rollingit backward in order to disable the functions altogether. Anotherdisadvantage is that once the electronic device is shipped, there is noway to alter its firmware's latent functions' deployment (order, triggertime/date, etc.) other than a user-implemented firmware update.

Accordingly, there is a need for improved systems and methods forupdating electronic devices.

SUMMARY

The present disclosure provides example methods and systems that may beimplemented in any general electronic system or specifically in animaging/printing device/system to thwart the use of non-authenticcomponents.

There is provided a method for updating an imaging device, the methodcomprising: receiving, by the imaging device, update information from amemory of a supply item connected to the imaging device, the updateinformation comprising an update value, and updating a firmware variableof the imaging device based on the update information.

In the traditional scenario, the only way to update the firmware wouldbe via firmware updates implemented by end users. However, sincehistorically the firmware update adoption rate is low, many imagingdevices continue operating using old firmware versions. By using thedisclosed mechanism of pushing updates via supply items, over time, all(or nearly all) of customers' imaging devices can be updated.

In certain implementations, updating a firmware variable of the imagingdevice based on the update information may comprise changing thefirmware variable when a condition is met.

In certain implementations, the update information further comprises anupdate version value, wherein updating the firmware variable of theimaging device based on the update information comprises: when theupdate version value indicates a newer version than the version value ofthe firmware variable, updating the firmware variable to match theupdate value. In certain implementations, updating the firmware variableof the imaging device based on the update information further comprises:comparing the update version value with a version value of the firmwarevariable. In certain implementations, the imaging device performs thecomparing of the update version value with a version value of thefirmware variable.

In certain implementations, the update information further comprises anupdate version value, wherein updating the firmware variable of theimaging device based on the update information comprises: when theupdate version value is greater than the version value of the firmwarevariable, updating the firmware variable to match the update value. Agreater version value indicates a newer version.

In certain implementations, the method further comprises: updating theversion value of the firmware variable to match the update version valuewhen the firmware variable is updated to match the update value.

In certain implementations, updating the firmware variable of theimaging device based on the update information further comprises: whenthe update version value does not indicate a newer version than theversion value of the imaging device, retaining the firmware variableunchanged. This means that if an older generation of supply item is usedin an updated imaging device, then the updates previously performed willnot be undone.

In certain implementations, updating the firmware variable of theimaging device based on the update information further comprises: whenthe update version value is not greater than the version value of theimaging device, retaining the firmware variable unchanged.

In certain implementations, the update value may have a format thatmatches a format of the firmware variable. For example, the update valueand the firmware variable may each be an 8-bit field. In certainimplementations, one or more of the firmware variable, version value ofthe firmware, update value and update version value have a binaryformat, for example, comprise a bit-field and optionally, are an 8-bitfield.

In certain implementations, the firmware variable is a compatibilityfilter. In certain implementations, the update value is a compatibilityupdate filter. In certain implementations, the compatibility filter is ageneration compatibility filter configured to control which generationsof supply item are classified as compatible with the imaging device. Incertain implementations, the update value is a generation compatibilityupdate filter indicating which generations of supply item are compatiblewith the imaging device. In certain implementations, the compatibilityfilter is a region compatibility filter configured to control whichregions of the world are classified as compatible with the imagingdevice. In certain implementations, the update value is a compatibilityupdate filter indicating which regions of the world are compatible withthe imaging device. In certain implementations, the compatibility filteris a family compatibility filter configured to control which families ofdevices and/or supply items are classified as compatible with theimaging device. In certain implementations, the update value is acompatibility update filter indicating which families of devices and/orsupply items are compatible with the imaging device.

In certain implementations, the firmware variable is a mask, forexample, a bitmask. The firmware may be configured to use a bitwise ANDof the compatibility filter with a value, such as ageneration/region/family identifier from a supply item to determine ifthe supply is compatible. The term “generation” may refer to year,month, or any other production time interval as deemed appropriate. Inthis disclosure, the terms “Generation” and “Year” are usedinterchangeably.

In certain implementations, the firmware variable is a function statusvariable configured to control the status of one or more functions. Thestatus of a function may be set to one of “enabled” in which thefirmware is configured to carry out the function and “disabled” in whichthe firmware is configured to not carry out the function. The enabled ordisabled statuses may be indicated by a 1 or 0 respectively when thefunction status variable is a bit field.

In certain implementations, the one or more functions are stored on theimaging device. In this way, in order to update the functionality of theimaging device, only a variable needs to be updated, and no newfunctions need to be sent to and installed on the imaging device. Thisreduces the amount of data to be sent to the imaging device and is amore efficient way to update the functionality of the imaging device.

In certain implementations, a function of the one or more functions isan authentication function, configured to determine the authenticity ofa supply item when connected to the imaging device. In certainimplementations, a function of the one or more functions is anenhancement to print speed, print quality, scan speed, scan quality,software fax (fax over the Internet), OCR function on scanner, scan toemail and/or a secure check printing feature. For example, an MICR(magnetic ink character recognition) cartridge could cause the imagingdevice to enable a secure check printing feature.

In certain implementations, the update information is included in asigned certificate. In certain implementations, the method furthercomprises verifying the signed certificate. The step of verifying mayoccur before updating the firmware variable of the imaging device basedon the update information and/or before reading the update informationfrom the signed certificate.

There is further provided an imaging device, the imaging devicecomprising firmware and a memory, the memory storing a firmwarevariable, wherein the firmware is configured to read the firmwarevariable, and the imaging device is configured to update the firmwarevariable, by: receiving update information from a memory of a supplyitem connected to the imaging device, the update information comprisingan update value, and updating the firmware variable of the imagingdevice based on the update information.

In certain implementations, updating a firmware variable of the imagingdevice based on the update information may comprise changing thefirmware variable when a condition is met.

In certain implementations, the imaging device memory further stores aversion value of the firmware variable, and the update informationfurther comprises an update version value, and updating the firmwarevariable of the imaging device based on the update informationcomprises: when the update version value indicates a newer version thanthe version value of the firmware variable, updating the firmwarevariable to match the update value. In certain implementations, updatingthe firmware variable of the imaging device based on the updateinformation further comprises: comparing the update version value with aversion value of the firmware variable.

In certain implementations, the imaging device memory further stores aversion value of the firmware variable, and the update informationfurther comprises an update version value, and updating the firmwarevariable of the imaging device based on the update informationcomprises: when the update version value is greater than the versionvalue of the firmware variable, updating the firmware variable to matchthe update value. A greater version value indicates a newer version.

In certain implementations, updating the firmware variable of theimaging device based on the update information further comprises:updating the version value of the firmware variable to match the updateversion value when the firmware variable is updated to match the updatevalue.

In certain implementations, updating the firmware variable of theimaging device based on the update information further comprises: whenthe update version value does not indicate a newer version than theversion value of the imaging device, retaining the firmware variableunchanged.

In certain implementations, updating the firmware variable of theimaging device based on the update information further comprises: whenthe update version value is not greater than the version value of thefirmware variable, retaining the firmware variable unchanged.

In certain implementations, the update value may have a format thatmatches a format of the firmware variable. For example, the update valueand the firmware variable may each be an 8-bit field. In certainimplementations, one or more of the firmware variable, version value ofthe firmware, update value and update version value have a binaryformat, for example, comprise a bit-field and optionally, are an 8-bitfield.

In certain implementations, the firmware variable is a compatibilityfilter. In certain implementations, the update value is a compatibilityupdate filter. In certain configurations, the compatibility filter is ageneration compatibility filter configured to control which generationsof supply item are classified as compatible with the imaging device. Incertain implementations, the update value is a generation compatibilityupdate filter indicating which generations of supply item are compatiblewith the imaging device. In certain implementations, the compatibilityfilter is a region compatibility filter configured to control whichregions of the world are classified as compatible with the imagingdevice. In certain implementations, the update value is a compatibilityupdate filter indicating which regions of the world are compatible withthe imaging device. In certain implementations, the compatibility filteris a family compatibility filter configured to control which families ofdevices and/or supply items are classified as compatible with theimaging device. In certain implementations, the update value is acompatibility update filter indicating which families of devices and/orsupply items are compatible with the imaging device.

In certain implementations, the firmware variable is a mask, forexample, a bitmask. The firmware may be configured to use a bitwise ANDof the compatibility filter with a value, such as ageneration/region/family identifier from a supply item to determine ifthe supply is compatible. In certain implementations, the firmwarevariable is a function status variable configured to control the statusof one or more functions. The status of a function of the one or morefunctions may be set to one of “enabled” in which the firmware isconfigured to carry out the function and “disabled” in which thefirmware is configured to not carry out the function.

In certain implementations, the one or more functions are stored on theimaging device.

In certain implementations, a function of the one or more functions isan authentication function, configured to determine the authenticity ofa supply item when connected to the imaging device. In certainimplementations, a function of the one or more functions is anenhancement to print speed, print quality, scan speed, scan quality,software fax (fax over the Internet), OCR function on scanner, scan toemail and/or a secure check printing feature. For example, an MICR(magnetic ink character recognition) cartridge could cause the imagingdevice to enable a secure check printing feature.

In certain implementations, the update information is included in asigned certificate.

In certain implementations, the imaging device is configured to verifythe signed certificate. In certain implementations, the imaging deviceis configured to verify the signed certificate before updating thefirmware variable of the imaging device based on the update informationand/or before reading the update information from the signedcertificate.

There is further provided an imaging device supply item, the supply itemcomprising a memory, the memory storing update information, the updateinformation comprising an update value, and the supply item beingconfigured to send the update information to an imaging device.

In certain implementations, the update information further comprises anupdate version value.

In certain implementations, the supply item is configured to send theupdate information to the imaging device when the supply item receives acorresponding request from the imaging device, or when the supply itemis first connected to the imaging device.

In certain implementations, the supply item is further configured tocompare the update version value with a version value received from theimaging device and, when the update version value is greater than theimaging device version value, to send the update value to the imagingdevice.

There is further provided, an imaging system comprising the imagingdevice described above and the supply item described above.

There is further provided, a method for updating an electronic device,the method comprising: receiving, by the electronic device, updateinformation from a memory of a supply item connected to the electronicdevice, the update information comprising an update value, and updatinga firmware variable of the electronic device based on the updateinformation.

In certain configurations, the update information further comprises anupdate version value, wherein updating the firmware variable of theelectronic device based on the update information comprises: when theupdate version value indicates a newer version than the version value ofthe firmware variable, updating the firmware variable to match theupdate value.

In certain configurations, updating the firmware variable of theelectronic device based on the update information further comprises:when the update version value does not indicate a newer version than theversion value of the firmware variable, retaining the firmware variableunchanged.

In certain configurations, the firmware variable is a compatibilityfilter. In certain implementations, the update value is a compatibilityupdate filter. In certain configurations, the compatibility filter is ageneration compatibility filter configured to control which generationsof supply item are classified as compatible with the electronic device.In certain implementations, the update value is a generationcompatibility update filter indicating which generations of supply itemare compatible with the electronic device. In certain implementations,the compatibility filter is a region compatibility filter configured tocontrol which regions of the world are classified as compatible with theelectronic device. In certain implementations, the update value is acompatibility update filter indicating which regions of the world arecompatible with the electronic device. In certain implementations, thecompatibility filter is a family compatibility filter configured tocontrol which families of devices and/or supply items are classified ascompatible with the electronic device. In certain implementations, theupdate value is a compatibility update filter indicating which familiesof devices and/or supply items are compatible with the electronicdevice.

In certain implementations, the electronic device is configured toactivate features based on region, generation and/or family of thesupply item.

In certain configurations, the firmware variable is a function maskstatus variable configured to control the status of one or morefunctions.

In certain configurations, the one or more functions are stored on theelectronic device.

In certain configurations, a function of the one or more functions is anauthentication function, configured to determine the authenticity of asupply item when connected to the electronic device.

In certain configurations, the update information is included in asigned certificate.

There is further provided, an electronic device, the electronic devicecomprising firmware and a memory, the memory storing a firmwarevariable, wherein the firmware is configured to read the firmwarevariable, and the electronic device is configured to update the firmwarevariable, by: receiving update information from a memory of a supplyitem connected to the electronic device, the update informationcomprising an update value, and updating the firmware variable of theelectronic device based on the update information.

In certain configurations, the electronic device memory further stores aversion value of the firmware variable, and the update informationfurther comprises an update version value, and updating the firmwarevariable of the electronic device based on the update informationcomprises: when the update version value indicates a newer version thanthe version value of the firmware variable, updating the firmwarevariable to match the update value.

In certain configurations, updating the firmware variable of theelectronic device based on the update information further comprises:when the update version value does not indicate a newer version than theversion value of the firmware variable, retaining the firmware variableunchanged.

In certain configurations, the firmware variable is a compatibilityfilter. In certain implementations, the update value is a compatibilityupdate filter. In certain implementations, the compatibility filter is ageneration compatibility filter configured to control which generationsof supply item are classified as compatible with the electronic device.In certain implementations, the update value is a generationcompatibility update filter indicating which generations of supply itemare compatible with the electronic device. In certain implementations,the compatibility filter is a region compatibility filter configured tocontrol which regions of the world are classified as compatible with theelectronic device. In certain implementations, the update value is acompatibility update filter indicating which regions of the world arecompatible with the electronic device. In certain implementations, thecompatibility filter is a family compatibility filter configured tocontrol which families of devices and/or supply items are classified ascompatible with the electronic device. In certain implementations, theupdate value is a compatibility update filter indicating which familiesof devices and/or supply items are compatible with the electronicdevice.

In certain implementations, the electronic device is configured toactivate features based on region, generation and/or family of thesupply item.

In certain configurations, the firmware variable is a function statusvariable configured to control the status of one or more functions.

In certain configurations, the one or more functions are stored on theelectronic device.

In certain configurations, a function of the one or more functions is anauthentication function, configured to determine the authenticity of asupply item when connected to the electronic device.

In certain configurations, the update information is included in asigned certificate.

There is further provided an electronic device supply item, the supplyitem comprising a memory, the memory storing update information, theupdate information comprising an update value, and the supply item beingconfigured to send the update information to an electronic device.

In certain configurations, the update information further comprises anupdate version value.

In certain configurations, the supply item is further configured tocompare the update version value with a version value received from theelectronic device and, when the update version value indicates a newerversion than the version value of the firmware variable, to send theupdate value to the electronic device.

There is further provided an electronic system comprising the electronicdevice of as described above and the supply item as described above.

The methods, imaging devices, supply items and systems described abovemay be employed in any combination. The optional features describedabove are equally applicable to all of the described methods, imagingdevices, supply items and systems and are not limited to the particularmethod/imaging device/supply item/system with which they are described.The essential features of any of the methods, imaging devices, supplyitems and systems described may be optional features of any othermethods, imaging devices, supply items and systems described.

From the foregoing disclosure and the following detailed description ofvarious examples, it will be apparent to those skilled in the art thatthe present disclosure provides a significant advance in the art ofdetermining the authenticity of a component an electronic system.Additional features and advantages of various examples will be betterunderstood in view of the detailed description provided below.

BRIEF DESCRIPTION OF THE DRAWINGS

The above-mentioned and other features and advantages of the presentdisclosure, and the manner of attaining them, will become more apparentand will be better understood by reference to the following descriptionof examples taken in conjunction with the accompanying drawings. Likereference numerals are used to indicate the same element throughout thespecification.

FIG. 1 is a diagrammatic view of an imaging system.

FIG. 2 is a flow chart showing a method of updating an imaging device.

FIG. 3 is a flow chart showing another method of updating an imagingdevice.

DETAILED DESCRIPTION OF THE DRAWINGS

It is to be understood that the disclosure is not limited to the detailsof construction and the arrangement of components set forth in thefollowing description or illustrated in the drawings. The disclosure iscapable of other examples and of being practiced or of being carried outin various ways. For example, other examples may incorporate structural,chronological, process, and other changes. Examples merely typifypossible variations. Individual components and functions are optionalunless explicitly required, and the sequence of operations may vary.Portions and features of some examples may be included in or substitutedfor those of others. The scope of the disclosure encompasses theappended claims and all available equivalents. The following descriptionis, therefore, not to be taken in a limited sense, and the scope of thepresent disclosure is defined by the appended claims.

Also, it is to be understood that the phraseology and terminology usedherein is for the purpose of description and should not be regarded aslimiting. The use herein of “including,” “comprising,” or “having” andvariations thereof is meant to encompass the items listed thereafter andequivalents thereof as well as additional items. Further, the use of theterms “a” and “an” herein do not denote a limitation of quantity butrather denote the presence of at least one of the referenced item.

In addition, it should be understood that examples of the disclosureinclude both hardware and electronic components or modules that, forpurposes of discussion, may be illustrated and described as if themajority of the components were implemented solely in hardware.

It will be further understood that each block of the diagrams, andcombinations of blocks in the diagrams, respectively, may be implementedby computer program instructions. These computer program instructionsmay be loaded onto a general purpose computer, special purpose computer,or other programmable data processing apparatus to produce a machine,such that the instructions which execute on the computer or otherprogrammable data processing apparatus may create means for implementingthe functionality of each block or combinations of blocks in thediagrams discussed in detail in the description below.

These computer program instructions may also be stored in anon-transitory computer-readable medium that may direct a computer orother programmable data processing apparatus to function in a particularmanner, such that the instructions stored in the computer-readablemedium may produce an article of manufacture, including an instructionmeans that implements the function specified in the block or blocks. Thecomputer program instructions may also be loaded onto a computer orother programmable data processing apparatus to cause a series ofoperational steps to be performed on the computer or other programmableapparatus to produce a computer implemented process such that theinstructions that execute on the computer or other programmableapparatus implement the functions specified in the block or blocks.

Accordingly, blocks of the diagrams support combinations of means forperforming the specified functions, combinations of steps for performingthe specified functions and program instruction means for performing thespecified functions. It will also be understood that each block of thediagrams, and combinations of blocks in the diagrams, can be implementedby special purpose hardware-based computer systems that perform thespecified functions or steps or combinations of special purpose hardwareand computer instructions.

Disclosed are example systems and methods for updating an electronicsystem, such as an imaging/printing system.

Referring to FIG. 1 , there is shown a diagrammatic view of an imagingsystem 100 used in association with the present disclosure. Imagingsystem 100 includes an imaging device 105 used for printing images onsheets of media. Image data of the image to be printed on a media sheetmay be supplied to imaging device 105 from a variety of sources such asa computer 110, laptop 115, mobile device 120, scanner 125 of theimaging device 105, or like computing device. The sources directly orindirectly communicate with imaging device 105 via wired and/or wirelessconnections.

Imaging device 105 includes an imaging device component 130 and a userinterface 135. Imaging device component 130 may include a processor andassociated memory. In some examples, imaging device component 130 may beformed as one or more Application Specific Integrated Circuits (ASICs)or System-on-Chip (SoCs). Memory may be any memory device which storesdata and may be used with or capable of communicating with processor.For example, memory may be any volatile or non-volatile memory orcombination thereof such as, for example, random access memory (RAM),read-only memory (ROM), flash memory and/or non-volatile RAM (NVRAM) forstoring data. Optionally, imaging device component 130 may control theprocessing of print data. Optionally, imaging device component 130 mayalso control the operation of a print engine during printing of an imageonto a sheet of media.

In one example, imaging device 105 may employ an electronicauthentication scheme to authenticate consumable supply items and/orreplaceable units installed in imaging device 105. In FIG. 1 , arepresentative consumable supply item/replaceable item, such as a tonercartridge 150, is shown (other consumable/replaceable supply items canequally be used in addition or instead, such as imaging units andfusers). Supply item 150 may be installed in a corresponding storagearea in imaging device 105. To perform authentication of supply item150, imaging device 105 may utilize an imaging device security device160 incorporated in imaging device 105 and a supply item security device165 of supply item 150.

In one example, imaging device security device 160 in imaging device 105may be similar to or the same as supply item security device 165 inconsumable supply item 150. Optionally, the imaging device securitydevice 160 may be programmed differently from supply item securitydevice 165. Imaging device security device 160 and supply item securitydevice 165 may operate in conjunction with one another to performauthentication functions, as will be explained in greater detail below.

In an example method, the compatibility of supply items is managed byupdating the imaging device. This example method will be described withreference to FIG. 2 .

The imaging device has a memory storing a firmware variable and aversion value of the firmware variable. The firmware variable is acompatibility filter configured to control which generations of supplyitem are classified as compatible with the imaging device. Thecompatibility filter is a bitmask. The firmware may be configured to usea bitwise AND of the compatibility filter with a generation value from asupply item to determine if the supply is compatible. In this way, eachbit of the compatibility filter determines if a particular generation ofsupply item is compatible with the imaging device. This bit fieldsignifies all generations of supplies that are allowed in the imagingdevice, with each bit of the field denoting a supply item generation.For example, Bit 0 might denote Generation 0, Bit 1=Generation 1, and soon. In this case, a compatibility filter of 11110000 would determinegenerations one to four to be incompatible and generations five to eightto be compatible. The version value of the firmware variable denotes thecurrent version of the imaging device's compatibility filter. Theversion value cannot be decremented except via an update to the imagingdevice firmware.

The imaging device 105 receives a signed certificate containing updateinformation from a memory of the supply item 150 connected to theimaging device at step 201. The signed certificate also includes ageneration value which denotes the generation(s) of the supply in theform of a bit field. For example, Bit 0 might denote Generation 0, Bit1=Generation 1, and so on. Typically, only one bit is set to designatethe generation, but this does not have to be the case.

The update information includes an update value which is a bit fieldindicating all generations of supplies that should be acceptable to theimaging device. The update information also includes an update versionvalue indicating the version of the supply item's update value. Theimaging device will compare this version value against the currentfirmware version value to determine if the imaging device should updateits firmware variable with the update value from the supply.

At step 202, the imaging device security device verifies whether thesigned certificate is authentic. When the signed certificate isdetermined to be authentic, the update information is read from thesigned certificate at step 203. The update information includes anupdate value and an update version value. The update value is acompatibility update filter indicating which generations of supply itemare compatible with the imaging device. The update value and thecompatibility filter are each an 8-bit field. The imaging device readsthe supply item generation value, update value and update version valuefrom the signed certificate. In other embodiments, the updateinformation and/or the generation value may not be included in a signedcertificate and may be stored on the supply item by other means.

The imaging device compares the generation value with the compatibilityfilter to determine whether the supply is compatible. The supply item150 is rejected if there are no matching “1” bits for a given bitposition in each field (I.e., if the logical AND of compatibility filterand supply item generation value=0).

At step 204, the imaging device compares the update version value withthe version value of the compatibility filter.

At step 205, when the update version value indicates a newer versionthan the version value of the compatibility filter, the compatibilityfilter is updated to match the update value and the version value of thecompatibility filter is updated to match the update version value. Inthis way, when the update value is a newer iteration of thecompatibility filter, than the version stored on the imaging device, thecompatibility filter is updated. In this embodiment, the version valuesincrease from older versions to newer versions, so a newer version has ahigher numerical value than an older version. As such, if the updateversion value is greater than the version value of the firmware, thenthe compatibility filter will be updated.

At step 206, when the update version value does not indicate a newerversion than the version value of the imaging device, the compatibilityfilter is retained unchanged. In this example, when the update versionvalue is not greater than the version value of the compatibility filter,the compatibility filter remains unchanged.

The updates to the firmware variable and firmware version value at step205 are persistent across imaging device power cycles.

In one example, all parameters in this example are 8 bits in length. Forthe firmware variable and compatibility filter and supply itemgeneration values, the LSB (Bit 0) represents Year 0, Bit 1=Year 1, andso on. So, for example, a supply item manufactured in Year 3 has itsgeneration value set to 0x08 (00001000).

The production lifetime for a given imaging device family may be threeyears, but that of the supply items may be 15 years. The desire is forall imaging devices to initially accept all generations (current andfuture) of supply items. Therefore, in manufacturing, all imagingdevices are configured with compatibility filters=0xFF (11111111).

Then, at the beginning of Year 6 (around three years after shutdown ofimaging device production), a decision is made to “roll” the supplies,and begin having imaging devices become incompatible with supply itemsmade in Years 0-2. The rationale is that after the three years havepassed since the last supply from Year 2 was manufactured, there shouldnot be any supply items from Years 0-2 remaining in stock for purchaseby the end user. Therefore, while users of inauthentic supply items(counterfeits) from Years 0-2 may see errors after an imaging deviceupdate, there should be no impact to users of legitimate supply items(which by this time should be Year 3 or later).

Supply items manufactured in Year 6 onwards are given the update valueof 0xF8 (11111000) and incrementing the update version value to 0x02(00000010). Imaging devices in which these supply items are installedwill in turn update their compatibility filter to 0xF8 (11111000) sothat they will subsequently reject any supplies from Years 0-2.

In a modified version of the above-described example shown in FIG. 2 ,the compatibility filter is a region compatibility filter configured tocontrol which supply items are compatible with the imaging device basedon the region of the world in which they were manufactured, rather thana generation compatibility filter.

The imaging device has a memory storing a firmware variable and aversion value of the firmware variable. The firmware variable is abitmask region compatibility filter. The firmware may be configured touse a bitwise AND of the region compatibility filter with a region valuefrom a supply item to determine if the supply is compatible. In thisway, each bit of the compatibility filter determines if a particularregion of supply items are compatible with the imaging device. Each bitof the field denotes a supply item region. For example, Bit 0 mightdenote USA, Bit 1=Canada, Bit 2=Mexico, Bit 3=UK, Bit 4=Western Europe,Bit 5=Eastern Europe, Bit 6=Asia, Bit 7=Rest of World. In this case, acompatibility filter of 11110000 would determine USA, Canada, Mexico, UKto be incompatible and Western Europe, Eastern Europe, Asia and the Restof World to be compatible. The version value of the firmware variabledenotes the current version of the imaging device's region compatibilityfilter. The version value cannot be decremented except via an update tothe imaging device firmware.

The imaging device 105 receives a signed certificate containing updateinformation from a memory of the supply item 150 connected to theimaging device at step 201. The signed certificate also includes aregion value which denotes the region(s) of the supply in the form of abit field.

The update information includes an update value which is a bit fieldindicating all regions that should be acceptable to the imaging device.The update information also includes an update version value indicatingthe version of the supply item's update value. The imaging device willcompare this version value against the current firmware version value todetermine if the imaging device should update its firmware variable withthe update value from the supply.

The imaging device security device verifies whether the signedcertificate is authentic. When the signed certificate is determined tobe authentic, the update information is read from the signedcertificate. The update information includes an update value and anupdate version value. The update value is a region compatibility updatefilter. The update value and the compatibility filter are each an 8-bitfield. The imaging device reads the supply item region value, updatevalue and update version value from the signed certificate. In otherembodiments, the update information and/or the region value may not beincluded in a signed certificate and may be stored on the supply item byother means.

The imaging device compares the region value with the regioncompatibility filter to determine whether the supply is compatible. Thesupply item 150 is rejected if there are no matching “1” bits for agiven bit position in each field (I.e., if the logical AND ofcompatibility filter and supply item generation value=0).

In one example, the imaging device might initially be configured toaccept a cartridge from any region (with a region compatibility filterof 11111111). The updates may then restrict the regions which arecompatible as determined by the first supply item used. For example, asupply item sold in the USA might configure the imaging device to acceptsupply items from only USA, Canada, or Mexico. This further level ofsecurity may enable more effective detection of inauthentic supply itemswhich may have another or no region value. A supply item sold in Mexicomight allow cartridges from Mexico, USA, or Central America. In anotherexample method, the functionality of the imaging device 105 is managedby updating the imaging device. This example method will be describedwith reference to FIG. 3 .

The imaging device 105 has a firmware variable which is a functionstatus variable configured to control the status of one or morefunctions. The function status variable is a bit field which is used asa selector to control the deployment of certain functions in the imagingdevice. Each function is stored in the imaging device and is activatedif its corresponding bit in the function status variable field is set.

For example, Function 1 may be activated if bit 1 is set to 1, Function2 if bit 2 is set to 1, and so on. The function status variable versionvalue denotes the current version of the function status variable.

The supply item stores update information which includes an update valuewhich is used to update the function status variable in the imagingdevice. The update information also includes an update version valuewhich denotes the version of the update value in the supply item.

In step 301, when the supply item is installed, the imaging device readsthe update information from the supply item. These parameters may beincluded in a signed certificate and steps 201 and 202 may be carriedout, but this does not have to be the case.

In step 302, the imaging device compares the version value of thefirmware function status variable with the update version value readfrom the supply item.

When the update version value indicates a newer version than the versionvalue of the function status variable, the function status variable isupdated to match the update value and the version value of the functionstatus variable is updated to match the update version value as occursin step 303. The updates to the function status variable and the versionvalue of the function status variable are persistent across imagingdevice power cycles. In this example, when the update version value isgreater than the version value of the function status variable, thefunction status variable is updated to match the update value.

In step 304, when the update version value does not indicate a newerversion than the version value of the firmware variable, the functionstatus variable is retained unchanged. In this example, when the updateversion value is not greater than the version value of the functionstatus variable, the function status variable remains unchanged.

In step 305, any functions indicated to be enabled by the updatedfunction status variable are enabled.

In one example of the method of FIG. 3 , the function status variable,the version value of the function status variable, the update value andthe update version value are all 8 bits in length. For the functionstatus variable and the update value, the LSB (Bit 0) representsFunction 0, Bit 1=Function 1, and so on.

None of the functions with statuses indicated by the function statusvariable are enabled in the imaging device initially. Therefore, inmanufacturing, all imaging devices are configured with FE=0x00(00000000).

Similarly, supply items are initially programmed such that the updatevalue is 0x00. The version value of the function status variable and theupdate version value are both initially set to 0x01.

Some time later (for example, three years after manufacture of theimaging device has ended), there is a desire to activate Functions 0 and2 associated with the function status variable. In the traditionalscenario, the only way to accomplish this would be via firmware updatesto end users.

The update value of new supply items is then set to 0x05 (00000101), andthe update version value of the new supply items is set to 0x02(00000010) during supply item manufacturing. Imaging devices in whichthese supplies are installed will in turn update their function statusvariables from 0x00 to 0x05 and subsequently activate Functions 0 and 2.

Some of the functions managed by the function status variable may beused to authenticate the supply devices using cryptographic operations.

For example, one authentication function uses the ECDSA to sign dataprovided by the host. The host generates random data and sends it to thesupply to be authenticated. The supply item signs the data with itsprivate key and returns the signature to the host. The host verifies thesignature using the corresponding public key. The supply item isconsidered authentic if the signature verification is successful andnon-authentic otherwise. Using this function, the supply provides proofthat it has possession of the private key and is thus authentic.

Enabling these authentication functions through the disclosed functionmanagement allows the functions to exist in the imaging device in aninactive state. An entity making a counterfeit supply item may notimplement the function because it is not initially required foroperation. If the counterfeiter does implement the function, it may notbe implemented correctly because it cannot be tested by operation of theimaging device. The chances of the function working correctly in acounterfeit device when subsequently enabled are therefore lower.

The imaging device may periodically execute a randomly selected functionon each supply item. The functions are selected by those currentlyenabled by the function status variable. Each supply should support theenabled functions and a supply is determined to be non-authentic if itdoes not. Note that a supply item can contain an update certificate todisable a deprecated function that the supply does not support. Thismakes it safe for the host to require all enabled functions to besupported by the supplies.

In one embodiment, the imaging device contains a security chip thatverifies the authenticity of the supply devices. The security chip hasprotections against tampering, reverse engineering, and code extraction.The security device manages the supply item compatibility and functionupdates described above. The security device also randomly selects thefunction to execute, generates the data needed for the command, andverifies the response from the supply to authenticate it. The host SoCis oblivious to which functions are enabled or executed.

The data communications with the supply items may be encrypted. In thiscase, the host initializes a session with each supply item to establisha session key that is used to encrypt the data for that supply. Theencryption provides data confidentiality, but anyone could observe thelength of the data transfers between the host and supplies and thefunctions may require different amounts of data. To keep someone fromdetermining the function being executed by the length of the transferreddata, the data communications for the managed functions may use a fixeddata length. The data required for each function is padded to the fixedlength. The host timing is also kept consistent to not reveal thefunction by the command timing.

The host may send to the supply item random data of a first fixedlength. The supply responds with the function specific result padded toa second fixed length with random data.

The supply items may contain hardware to do some of the cryptographicoperations required for authentication. For example, the ECDSAauthentication function may be done using an elliptic-curve cryptographycoprocessor. The specific-purpose hardware usually operates much fasterthan carrying out the same function on a small, low-powergeneral-purpose processor such as those on the supplies. To prevent acounterfeiter from implementing the function in software, the host mayimpose a time limit for the supply to provide a response.

The security chip may perform the timing. For commands with a timelimit, a countdown timer is started when the security chip has finishedgenerating the data for the supply. When the security chip receives theresponse from the supply, it checks if the selected function has a timelimit. If the function does have a time limit, then the security devicechecks if the timer has expired. The response from the supply isconsidered invalid if the timer has expired or if the response isincorrect.

In addition to being updated by the memory contents of a supply item,the compatibility and update fields may be updated by including anupdate certificate in the imaging device firmware. When the hostcontains a security chip, the SoC firmware sends the update certificateto the security chip.

Relatively apparent advantages of the many embodiments include, but arenot limited to, a more reliable method of updating an electronic systemor device.

It will be understood that the example applications described herein areillustrative and should not be considered limiting. It will beappreciated that the actions described and shown in the exampleflowcharts may be carried out or performed in any suitable order. Itwill also be appreciated that not all of the actions described in FIG. 3need to be performed in accordance with the example embodiments of thedisclosure and/or additional actions may be performed in accordance withother example embodiments of the disclosure.

Many modifications and other embodiments of the disclosure set forthherein will come to mind to one skilled in the art to which thesedisclosures pertain having the benefit of the teachings presented in theforegoing descriptions and the associated drawings. Therefore, it is tobe understood that the disclosure is not to be limited to the specificembodiments disclosed and that modifications and other embodiments areintended to be included within the scope of the appended claims.Although specific terms are employed herein, they are used in a genericand descriptive sense only and not for purposes of limitation.

Further disclosure is provided below.

Statement 1: A method for updating an electronic device, the methodcomprising: receiving, by the electronic device, update information froma memory of a supply item connected to the electronic device, the updateinformation comprising an update value, and updating a firmware variableof the electronic device based on the update information.

Statement 2: The method of statement 1, wherein the update informationfurther comprises an update version value, wherein updating the firmwarevariable of the electronic device based on the update informationcomprises: when the update version value indicates a newer version thanthe version value of the firmware variable, updating the firmwarevariable to match the update value.

Statement 3: The method of statement 2, wherein updating the firmwarevariable of the electronic device based on the update informationfurther comprises: when the update version value does not indicate anewer version than the version value of the firmware variable, retainingthe firmware variable unchanged.

Statement 4: The method of statement 1, wherein the firmware variable isa compatibility filter configured to control which generations of supplyitem are classified as compatible with the electronic device and theupdate value is a compatibility update filter indicating whichgenerations of supply item are compatible with the electronic device.

Statement 5: The method of statement 1, wherein the firmware variable isa function mask status variable configured to control the status of oneor more functions.

Statement 6: The method of statement 5, wherein the one or morefunctions are stored on the electronic device.

Statement 7: The method of statement 5, wherein a function of the one ormore functions is an authentication function, configured to determinethe authenticity of a supply item when connected to the electronicdevice.

Statement 8: The method of statement 1, wherein the update informationis included in a signed certificate.

Statement 9: An electronic device, the electronic device comprisingfirmware and a memory, the memory storing a firmware variable, whereinthe firmware is configured to read the firmware variable, and theelectronic device is configured to update the firmware variable, by:receiving update information from a memory of a supply item connected tothe electronic device, the update information comprising an updatevalue, and updating the firmware variable of the electronic device basedon the update information.

Statement 10: The electronic device of statement 9, wherein theelectronic device memory further stores a version value of the firmwarevariable, and the update information further comprises an update versionvalue, and updating the firmware variable of the electronic device basedon the update information comprises: when the update version valueindicates a newer version than the version value of the firmwarevariable, updating the firmware variable to match the update value.

Statement 11: The electronic device of statement 10, wherein updatingthe firmware variable of the electronic device based on the updateinformation further comprises: when the update version value does notindicate a newer version than the version value of the firmwarevariable, retaining the firmware variable unchanged.

Statement 12: The electronic device of statement 9, wherein the firmwarevariable is a compatibility filter configured to control whichgenerations of supply item are classified as compatible with theelectronic device and the update value is a compatibility update filterindicating which generations of supply item are compatible with theelectronic device.

Statement 13: The electronic device of statement 9, wherein the firmwarevariable is a function status variable configured to control the statusof one or more functions.

Statement 14: The electronic device of statement 13, wherein the one ormore functions are stored on the electronic device.

Statement 15: The electronic device of statement 13, wherein a functionof the one or more functions is an authentication function, configuredto determine the authenticity of a supply item when connected to theelectronic device.

Statement 16: The electronic device of statement 9, wherein the updateinformation is included in a signed certificate.

Statement 17: An electronic device supply item, the supply itemcomprising a memory, the memory storing update information, the updateinformation comprising an update value, and the supply item beingconfigured to send the update information to an electronic device.

Statement 18: The electronic device supply item of statement 17, whereinthe update information further comprises an update version value.

Statement 19: The electronic device supply item of statement 18, whereinthe supply item is further configured to compare the update versionvalue with a version value received from the electronic device and, whenthe update version value indicates a newer version than the versionvalue of the firmware variable, to send the update value to theelectronic device.

Statement 20: An electronic system comprising the electronic device ofstatement 1 and the supply item of statement 17.

What is claimed is:
 1. A method for updating an imaging device, themethod comprising: receiving, by the imaging device, update informationfrom a memory of a supply item connected to the imaging device, theupdate information comprising an update value, and updating a firmwarevariable of the imaging device based on the update information.
 2. Themethod of claim 1, wherein the update information further comprises anupdate version value, wherein updating the firmware variable of theimaging device based on the update information comprises: when theupdate version value indicates a newer version than the version value ofthe firmware variable, updating the firmware variable to match theupdate value.
 3. The method of claim 2, wherein updating the firmwarevariable of the imaging device based on the update information furthercomprises: when the update version value does not indicate a newerversion than the version value of the firmware variable, retaining thefirmware variable unchanged.
 4. The method of claim 1, wherein thefirmware variable is a compatibility filter configured to control whichgenerations of supply item are classified as compatible with the imagingdevice and the update value is a compatibility update filter indicatingwhich generations of supply item are compatible with the imaging device.5. The method of claim 1, wherein the firmware variable is a functionstatus variable configured to control the status of one or morefunctions.
 6. The method of claim 5, wherein the one or more functionsare stored on the imaging device.
 7. The method of claim 5, wherein afunction of the one or more functions is an authentication function,configured to determine the authenticity of a supply item when connectedto the imaging device.
 8. The method of claim 1, wherein the updateinformation is included in a signed certificate.
 9. An imaging device,the imaging device comprising firmware and a memory, the memory storinga firmware variable, wherein the firmware is configured to read thefirmware variable, and the imaging device is configured to update thefirmware variable, by: receiving update information from a memory of asupply item connected to the imaging device, the update informationcomprising an update value, and updating the firmware variable of theimaging device based on the update information.
 10. The imaging deviceof claim 9, wherein the imaging device memory further stores a versionvalue of the firmware variable, and the update information furthercomprises an update version value, and updating the firmware variable ofthe imaging device based on the update information comprises: when theupdate version value indicates a newer version than the version value ofthe firmware variable, updating the firmware variable to match theupdate value.
 11. The imaging device of claim 10, wherein updating thefirmware variable of the imaging device based on the update informationfurther comprises: when the update version value does not indicate anewer version than the version value of the firmware variable, retainingthe firmware variable unchanged.
 12. The imaging device of claim 9,wherein the firmware variable is a compatibility filter configured tocontrol which generations of supply item are classified as compatiblewith the imaging device and the update value is a compatibility updatefilter indicating which generations of supply item are compatible withthe imaging device.
 13. The imaging device of claim 9, wherein thefirmware variable is a function status variable configured to controlthe status of one or more functions.
 14. The imaging device of claim 13,wherein the one or more functions are stored on the imaging device. 15.The imaging device of claim 13, wherein a function of the one or morefunctions is an authentication function, configured to determine theauthenticity of a supply item when connected to the imaging device. 16.The imaging device of claim 9, wherein the update information isincluded in a signed certificate.
 17. An imaging device supply item, thesupply item comprising a memory, the memory storing update information,the update information comprising an update value, and the supply itembeing configured to send the update information to an imaging device.18. The imaging device supply item of claim 17, wherein the updateinformation further comprises an update version value.
 19. The imagingdevice supply item of claim 18, wherein the supply item is furtherconfigured to compare the update version value with a version valuereceived from the imaging device and, when the update version valueindicates a newer version than the version value of the firmwarevariable, to send the update value to the imaging device.
 20. An imagingsystem comprising the imaging device of claim 1 and the supply item ofclaim 17.